]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
keyboard: Add/document "leftOffset" optional property on OSK keys
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 26 Jan 2024 12:07:00 +0000 (13:07 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 29 Feb 2024 15:34:21 +0000 (16:34 +0100)
This optional property defines the offset the a key should have
relative to the previous key (on its left) or the start of the
column if it is the first key. If this property is not
present, the key will be placed with no relative offset.

This for example allows keymaps to explicitly define the padding
of the rows that are not "full" relative to other rows, without
guesswork in the code. It is used for this purpose in the
keymaps/levels/rows that needed it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3162>

61 files changed:
data/README.osk-layouts
data/osk-layouts/am.json
data/osk-layouts/ara.json
data/osk-layouts/at.json
data/osk-layouts/be.json
data/osk-layouts/bg.json
data/osk-layouts/by.json
data/osk-layouts/ca.json
data/osk-layouts/ch+fr.json
data/osk-layouts/ch.json
data/osk-layouts/cz.json
data/osk-layouts/de.json
data/osk-layouts/dk.json
data/osk-layouts/ee.json
data/osk-layouts/epo.json
data/osk-layouts/es+cat.json
data/osk-layouts/es.json
data/osk-layouts/fi.json
data/osk-layouts/fr.json
data/osk-layouts/ge.json
data/osk-layouts/gr.json
data/osk-layouts/hr.json
data/osk-layouts/hu.json
data/osk-layouts/id.json
data/osk-layouts/il.json
data/osk-layouts/in+bolnagri.json
data/osk-layouts/in+mal.json
data/osk-layouts/ir.json
data/osk-layouts/is.json
data/osk-layouts/it.json
data/osk-layouts/ke.json
data/osk-layouts/kg.json
data/osk-layouts/kh.json
data/osk-layouts/kr.json
data/osk-layouts/la.json
data/osk-layouts/latam.json
data/osk-layouts/lt.json
data/osk-layouts/lv.json
data/osk-layouts/mk.json
data/osk-layouts/mn.json
data/osk-layouts/my.json
data/osk-layouts/nl.json
data/osk-layouts/no.json
data/osk-layouts/ph.json
data/osk-layouts/pl.json
data/osk-layouts/pt.json
data/osk-layouts/ro.json
data/osk-layouts/rs.json
data/osk-layouts/ru.json
data/osk-layouts/se.json
data/osk-layouts/si.json
data/osk-layouts/sk.json
data/osk-layouts/th.json
data/osk-layouts/tr.json
data/osk-layouts/ua.json
data/osk-layouts/uk.json
data/osk-layouts/us-extended.json
data/osk-layouts/us.json
data/osk-layouts/vn.json
data/osk-layouts/za.json
js/ui/keyboard.js

index a0a0dbea55ae990f24ffc912fa0087ea88207d9f..88e746e4de9a8bf10ceed4d34518fa988f084f0d 100644 (file)
@@ -55,6 +55,12 @@ it has the following structure:
   - keyval (String): Hexadecimal keyval to emit as
     emulated key presses. Committed strings are
     preferred.
+  - leftOffset (Double): If set, the left offset of
+    this key, relative to the key immediately to the
+    left, or the start of the row. If not set, the key
+    will be implicitly located at the right of the
+    previous key in the row. Multiples of 0.5 are
+    accepted.
   - width (Double): Relative width of the key in the
     row. 1 is for a square key. Multiples of 0.5 are
     accepted.
index 83167744700a825312bd651db9388a9c4ca32bf1..7830a39a31ce335b858baad387c0cdfcd9396c27 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "ա"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "Ա"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "hy",
   "name": "Armenian"
-}
\ No newline at end of file
+}
index 10095ce899d7d5e9472be8655999a44bda2a4bd8..9bdc9bcec44da95530543becdc849096202954df 100644 (file)
         ],
         [
           {
+            "leftOffset": 1,
             "strings": [
               "ذ"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "ar",
   "name": "Arabic"
-}
\ No newline at end of file
+}
index 31715a3ec893ab9800f5c274f58da2e3d3aabd5a..d73117412cc5ec1379f906e67f9120c200c560d3 100644 (file)
@@ -81,6 +81,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 6e4f75d5d2ac431cc20d4b377efb6c773b2272a6..3ee92e05aff8adc05e5ee4ee3fc10854c5229d7b 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index fb7385deb44a68a3f487d0777158e3f58ac19d9c..c825c9f788d90c3768cd8b18232eadcc36840529 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 25543eb6b252a454e5cff5c1d4dded6cfc4171b3..e74fe9a6faf062555a60229855786e63b1feba5a 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "be",
   "name": "Belarusian"
-}
\ No newline at end of file
+}
index 230a6ba93cf6c81094a3919e8ff2983a8ff2faf8..c19b7b90e8bebb2e58673e2c7b8c56f0dd51f714 100644 (file)
@@ -96,6 +96,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "à",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "À",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 1081cc0becfede62eb19738534ebb8c0e35a37f6..300d937ec82b159856413150073c1c1fff74d9ff 100644 (file)
@@ -81,6 +81,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 1844afabee31b17ba1387db5ec3da6785d9b5ebd..2e7a9368dd8c73526ef2801d54664011585ebc30 100644 (file)
@@ -81,6 +81,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 38067de0b459210f312ded75d43e7b8033de42b4..a026d18ab2bcce8d36e8a14f1ffc8f5831d3db1b 100644 (file)
@@ -96,6 +96,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index d41b499aeea8909ec9d290366cf4536862834865..0cb1bf1d2071a5823f3e0e6c02e63572b6fe6b6b 100644 (file)
@@ -81,6 +81,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Ä",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index fe277ae7b7b06cc75ecaa33f7b2865c873dbb2c2..089e3b8fb87eedd205d499f4ca195896bed58b7d 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 395fbcea377ae06520b766f2c3ee1ab37230440a..4c5b59b1dd2b0d126f1180be6cd16fa48de0fca8 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index d0da53f9ebb7953c981059b01d0daa7a4cc252e1..ac18c36d5a6f81c89491556e0ccf58ce89b5b267 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index fab8d4eae0976d5fcd5c14531a5704bc10b66c9e..00219c7adb9eb3a24d00edef23208d5d165d9751 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 652c07f3afee01def3c32a8a257e868d8616b345..9c8bf4958860cf0fc81a423c19cd54dc17455f68 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 5a6b7f27bc83135bd280036abce753f02268eb2f..39d4241c017a0956726f1b84240043fdc14d5395 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index bf1ba86e46bab279c6b8f6e0e9a24991c4f83fcf..3267ed833e8e095d0654393efe7c8e0963f58412 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 33884f685cb6edcf98c7c0b66e3dac86287167b6..b5f495120802df27f136fd331c115e5eb7b93139 100644 (file)
@@ -66,6 +66,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "ა",
               "ჺ"
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index a60a18619f7df16cb477c8a55588c40f1764ee96..471e819232b4a64c3f4b2210c7ece8f7a796dbc2 100644 (file)
@@ -72,6 +72,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "α",
               "ά"
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "Α",
               "Ά"
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 0b83cdc76a1ca8ca1770f310a6fd9485e9a7013d..95ff2d880f5a3fbc9a29f0595408eab20540cef7 100644 (file)
@@ -66,6 +66,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index f45f31c3c1cb7bbbfdbd9658148220e0049968a9..e686cd78fb4f9f934667b6d1213b55fc6bfa7f60 100644 (file)
@@ -91,6 +91,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 6d57095b2911ae3e9bf938c7ff6ac8aace2899a3..8eb3fc09d33b58517ccd30366d9fab621a305c56 100644 (file)
@@ -63,6 +63,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index d797b748ceb064bcfd6303a1c0d84e8bd210cb1d..03f7d521d2260dede8124e1dd6be0ab79c402448 100644 (file)
         ],
         [
           {
+            "leftOffset": 1,
             "strings": [
               "ז",
               "ז׳"
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "he",
   "name": "Hebrew"
-}
\ No newline at end of file
+}
index e28063367f01eca55e8f6212d80ac1d42e24d2b7..a3c0e30438fcec6fe46c2e086ca0a5f9806fb1ae 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 49dcd6b96486b4899a53c2d4c80f54339f9efa45..3daaf9e1a19ed6a58cbe337bd98effdf561f1953 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index eab25bb524e3fe8a145a29397e3b378cc3aab017..cae9368ad462a9b9e8ecd621e84bd515a54bde9e 100644 (file)
         ],
         [
           {
+            "leftOffset": 1,
             "strings": [
               "ذ"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "٬",
               "@"
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "fa",
   "name": "Persian"
-}
\ No newline at end of file
+}
index ac3176cd4376ea1f3172ae0675b7929c7aba5d62..736784f52fe7f5b4bc04d87a0e19c2020e1ea44b 100644 (file)
@@ -92,6 +92,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 781aa0f5e0155c4fffc86ca1815e5ca63bb8149c..84d68e9964798f1e9d8b474f3fc948ca7d56772c 100644 (file)
@@ -90,6 +90,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "à",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "À",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 198d6b30801274736b331061e86cd67cd932563d..1c16aea28d7519a5a775ad3ef3fda15b3e990bb9 100644 (file)
@@ -86,6 +86,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "à",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "À",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 1f806ad0d5eaf0ee741382bf29e06613db8f6445..d756f25cfc2a8778c59a9a1ea3c6926b5c9e6f25 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "ky",
   "name": "Kirghiz"
-}
\ No newline at end of file
+}
index 78591b51825ca2258adf139b177383008e3de99d..4ffafb7298e0147e0c30590b43d6617d8d2f06f4 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index d89f8c78637b38f4f8f88cca3370a85aadc0f868..ba43e7f3a109ff30b950eaa192afef55842970b3 100644 (file)
@@ -74,6 +74,7 @@
         [
           {
             "label": "ㅁ",
+            "leftOffset": 0.5,
             "strings": [
               "a"
             ]
         [
           {
             "label": "ㅋ",
+            "leftOffset": 1,
             "strings": [
               "z"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 65f0feeaea1d982d23919a2de9e4b4ff0510051d..09e1ab82b25c3fc15e5b1f342e3a2c64f6f63128 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 01c67f870dca91dcf0d311bb4fd9bcebd5488406..5058c17d5253735d1c694f378ad9b44bffb731e6 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index a0f52a5e1583eaecdf167ee0840d21e98a1b46fe..dbfc4bc977bf463dcecf965682daef81ace8eed3 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "ą",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Ą",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 2a2dcd12473772001aa2cccda40d2c28330bae07..04cc7e968982761efb3cd39cee0b613ca8307aa5 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "ā",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Ā",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 0c20ead9dd302a6532cc144d413c51ca4c844099..c716f914594ba1a5b49dd0029a3e925411e4ccc5 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "mk",
   "name": "Macedonian"
-}
\ No newline at end of file
+}
index 9cf41f53b7000a7e890bef7dc159699d84c6ef06..2184a3310a8688981d73a4af385bac16e8601be4 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "mn",
   "name": "Mongolian"
-}
\ No newline at end of file
+}
index 1aedf20320c29af4e3e59bd398ae32d35769069a..cc23107b0a60fb85e7864de534eaf28746bf943b 100644 (file)
@@ -63,6 +63,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 61bd4dd610120604a27e39b10abe68e07a2b3bc1..024713be97660f7b57304cfab5023deb42621787 100644 (file)
@@ -91,6 +91,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 234b972383263923748b9e0aae2aa1b7f9385416..f27ac2abb0b7dd506e6a710110f8e6638f826506 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 0dbe4f23b88ee145746fe306e683592637e4e2c5..76dedd24caeeb034f33963a9afc02704c6f18d02 100644 (file)
@@ -63,6 +63,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index dbcd9d6fee478cb452ef22ea7b3e22a023a9c18c..9b95b8e80ea0518e8cfeac19a2d9317b94c08118 100644 (file)
@@ -78,6 +78,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "ą",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Ą",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 11c8c6d65f702b46d0bf9ce1c78670333d9ca0a8..08a406f92342b058fb77c47df7c8d1861f8291b9 100644 (file)
@@ -90,6 +90,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 8d14924bcbd1bc9d63acfff0b600770a69398b0c..5c9f7f5caa3e3e65d0c48bc68ea6809acc5d0d5e 100644 (file)
@@ -70,6 +70,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "â",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Â",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index f0cdb285b8952fd51ab69b287b3a71b1c9c5a39b..fbd9f34832a365a9f49a7b7716e40920a76207cd 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "sr",
   "name": "Serbian"
-}
\ No newline at end of file
+}
index 154c22eb9e99fdf7f33ab6ead5979fc5cf30028a..338f6cb9cc12e512713b23f4b792469967b0765b 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "ru",
   "name": "Russian"
-}
\ No newline at end of file
+}
index 0a4bb039c845d10bc7dfb765aa984fb1ea0e2f48..db2b3db2fef42860a99a8bcffe9fe5ddab1f38bd 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 7325c40399f0d4abbde789b8b51a01db5dfafa4e..bcea9ae4241387eccd59021ccf0fb3ac2beb7eaa 100644 (file)
@@ -63,6 +63,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 3e3b696b65aa45228d00a2e30d15a577fa2c98c6..8cc8e939102db6479b103bb09147fece9f601aac 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 131e5eb4842667afbcd15d4af81d08d33f82e716..d52028632f7cab8abbcd17b10b2236adac611e85 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "ฟ"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "ฤ"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "th",
   "name": "Thai"
-}
\ No newline at end of file
+}
index de2b8f3c019a2034b903c570eb6c3c4e8280fdcc..aa09cae5b747a107b57d0dd87b27b41ebceae2f7 100644 (file)
@@ -83,6 +83,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "â"
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Â"
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index b32b6b5023814c2234f251ffc219b44dd124dbc2..aa3ac741f4383fe20bed172396d6d1a59cebc9ac 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
   ],
   "locale": "uk",
   "name": "Ukrainian"
-}
\ No newline at end of file
+}
index 6b00c34d21a5e1aab67875ece967792939dc7354..69c7313e7f4f95b6e760abcfb7944889411db159 100644 (file)
@@ -86,6 +86,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "à",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "À",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "€"
             ]
index 2c58b995d982bcf0130aae1a634669b3e0638a3d..0d5bc96de3462d2350b4d2c5a5487722f1dd58fc 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index b34b16bc0ec55625e61da84614baf0e9aa87b691..922ef9295d0f73a834a33578835b6b9d5d872cf7 100644 (file)
@@ -86,6 +86,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "à",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "À",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 17c7f0ed31c8ad1f0b6bf494680aa30ab3533136..01af2698e2989bf305055719ff8187487957ab09 100644 (file)
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "à",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "À",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index 0e8dd96b3db610fbfc59e91f40e5f545b35adde1..fae0980ec85e58fcb4123b2bcaeef2330ef05380 100644 (file)
@@ -94,6 +94,7 @@
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "a",
               "á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "A",
               "Á",
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "@"
             ]
         ],
         [
           {
+            "leftOffset": 0.5,
             "strings": [
               "£"
             ]
index fb83db7e962afe182c127b09a16453ae7bdd5577..bf6317840100a04564a20354c59be69c7bf871b0 100644 (file)
@@ -113,10 +113,10 @@ class KeyContainer extends St.Widget {
         this._rows.push(row);
     }
 
-    appendKey(key, width = 1, height = 1) {
-        let keyInfo = {
+    appendKey(key, width = 1, height = 1, leftOffset = 0) {
+        const keyInfo = {
             key,
-            left: this._currentCol,
+            left: this._currentCol + leftOffset,
             top: this._currentRow,
             width,
             height,
@@ -126,37 +126,19 @@ class KeyContainer extends St.Widget {
         row.keys.push(keyInfo);
         row.width += width;
 
-        this._currentCol += width;
+        this._currentCol += leftOffset + width;
         this._maxCols = Math.max(this._currentCol, this._maxCols);
     }
 
     layoutButtons() {
-        let nCol = 0, nRow = 0;
-
-        for (let i = 0; i < this._rows.length; i++) {
-            let row = this._rows[i];
-
-            /* When starting a new row, see if we need some padding */
-            if (nCol === 0) {
-                let diff = this._maxCols - row.width;
-                if (diff >= 1)
-                    nCol = diff * KEY_SIZE / 2;
-                else
-                    nCol = diff * KEY_SIZE;
-            }
-
-            for (let j = 0; j < row.keys.length; j++) {
-                let keyInfo = row.keys[j];
-                let width = keyInfo.width * KEY_SIZE;
-                let height = keyInfo.height * KEY_SIZE;
-
-                this._gridLayout.attach(keyInfo.key, nCol, nRow, width, height);
-                nCol += width;
-            }
-
-            nRow += KEY_SIZE;
-            nCol = 0;
-        }
+        this._rows.forEach(row => {
+            row.keys.forEach(keyInfo => {
+                const {left, top, width, height} = keyInfo;
+                this._gridLayout.attach(keyInfo.key,
+                                        left * KEY_SIZE, top * KEY_SIZE,
+                                        width * KEY_SIZE, height * KEY_SIZE);
+            });
+        });
     }
 
     getRatio() {
@@ -1582,7 +1564,7 @@ export const Keyboard = GObject.registerClass({
             if (key.action || key.keyval)
                 button.keyButton.add_style_class_name('default-key');
 
-            layout.appendKey(button, key.width);
+            layout.appendKey(button, key.width, 1, key.leftOffset);
         }
     }